Hammers and Nails

 

"If all you have is a hammer, throw away everything that's not a nail!" Besides being a clever aphorism it's part of a title of a recent paper on parallel algorithms by University of Maryland professor Jimmy Lin. His conclusion, briefly, is that since there's already one excellent tool to solve many important problems, then instead of inventing new, marginally better approaches that are complicated and hard to maintain, it's best to figure out how to make the standard tool work in broader domains. Far beyond that realm, yes, something radically different is needed. But Lin puts it more artfully:

To apply a metaphor: Hadoop is currently the large-scale data processing hammer of choice. We've discovered that, in addition to nails, there are actually screws—and it doesn't seem like hammering screws is a good idea. So instead of trying to invent a screwdriver, let's just get rid of the screws. If there are only nails, then our MapReduce hammer will work just fine. To be specific, much discussion in the literature surrounds the fact that iterative algorithms are not amenable to MapReduce: the (simple) solution, I suggest, is to avoid iterative algorithms!

...

Taking the metaphor a bit further (and at the expense of overextending it): On the one hand, we should perfect the hammer we already have by improving its weight balance, making a better grip, etc. On the other hand, we should be developing jackhammers—entirely new "game changers" that can do things MapReduce and Hadoop fundamentally cannot do.

Good thoughts, applicable to topics far beyond computer science ...

^z - 2012-11-18